home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-10-12 | 10.0 KB | 327 lines | [TEXT/PJMM] |
- unit Quickdraw;
-
- { Pascal Interface to the Macintosh Libraries }
-
- { Copyright © Apple Computer Inc. }
- { All Rights Reserved }
-
- { Adapted for use with THINK Pascal 4.0.x by Marco Piovanelli }
-
- interface
- uses
- Types;
-
- type
-
- ConstPatternParam = Pattern;
-
- PatPtr = ^Pattern;
-
- PatHandle = ^PatPtr;
-
- type
-
- DeviceLoopFlags = LONGINT;
-
- BitMapPtr = ^BitMap;
- BitMapHandle = ^BitMapPtr;
-
- QDTextProcPtr = ProcPtr; { PROCEDURE QDText(byteCount: INTEGER; textBuf: Ptr; numer: Point; denom: Point); }
- QDLineProcPtr = ProcPtr; { PROCEDURE QDLine(newPt: Point); }
- QDRectProcPtr = ProcPtr; { PROCEDURE QDRect(verb: ByteParameter; VAR r: Rect); }
- QDRRectProcPtr = ProcPtr; { PROCEDURE QDRRect(verb: ByteParameter; VAR r: Rect; ovalWidth: INTEGER; ovalHeight: INTEGER); }
- QDOvalProcPtr = ProcPtr; { PROCEDURE QDOval(verb: ByteParameter; VAR r: Rect); }
- QDArcProcPtr = ProcPtr; { PROCEDURE QDArc(verb: ByteParameter; VAR r: Rect; startAngle: INTEGER; arcAngle: INTEGER); }
- QDPolyProcPtr = ProcPtr; { PROCEDURE QDPoly(verb: ByteParameter; poly: PolyHandle); }
- QDRgnProcPtr = ProcPtr; { PROCEDURE QDRgn(verb: ByteParameter; rgn: RgnHandle); }
- QDBitsProcPtr = ProcPtr; { PROCEDURE QDBits(VAR srcBits: BitMap; VAR srcRect: Rect; VAR dstRect: Rect; mode: INTEGER; maskRgn: RgnHandle); }
- QDCommentProcPtr = ProcPtr; { PROCEDURE QDComment(kind: INTEGER; dataSize: INTEGER; dataHandle: Handle); }
- QDTxMeasProcPtr = ProcPtr; { FUNCTION QDTxMeas(byteCount: INTEGER; textAddr: Ptr; VAR numer: Point; VAR denom: Point; VAR info: FontInfo): INTEGER; }
- QDGetPicProcPtr = ProcPtr; { PROCEDURE QDGetPic(dataPtr: Ptr; byteCount: INTEGER); }
- QDPutPicProcPtr = ProcPtr; { PROCEDURE QDPutPic(dataPtr: Ptr; byteCount: INTEGER); }
- QDOpcodeProcPtr = ProcPtr; { PROCEDURE QDOpcode(VAR fromRect: Rect; VAR toRect: Rect; opcode: INTEGER; version: INTEGER); }
- QDJShieldCursorProcPtr = ProcPtr; { PROCEDURE QDJShieldCursor(left: INTEGER; top: INTEGER; right: INTEGER; bottom: INTEGER); }
- QDTextUPP = UniversalProcPtr;
- QDLineUPP = UniversalProcPtr;
- QDRectUPP = UniversalProcPtr;
- QDRRectUPP = UniversalProcPtr;
- QDOvalUPP = UniversalProcPtr;
- QDArcUPP = UniversalProcPtr;
- QDPolyUPP = UniversalProcPtr;
- QDRgnUPP = UniversalProcPtr;
- QDBitsUPP = UniversalProcPtr;
- QDCommentUPP = UniversalProcPtr;
- QDTxMeasUPP = UniversalProcPtr;
- QDGetPicUPP = UniversalProcPtr;
- QDPutPicUPP = UniversalProcPtr;
- QDOpcodeUPP = UniversalProcPtr;
- QDJShieldCursorUPP = UniversalProcPtr;
-
- const
- uppQDTextProcInfo = $00003F80; { PROCEDURE (2 byte param, 4 byte param, 4 byte param, 4 byte param); }
- uppQDLineProcInfo = $000000C0; { PROCEDURE (4 byte param); }
- uppQDRectProcInfo = $00000340; { PROCEDURE (1 byte param, 4 byte param); }
- uppQDRRectProcInfo = $00002B40; { PROCEDURE (1 byte param, 4 byte param, 2 byte param, 2 byte param); }
- uppQDOvalProcInfo = $00000340; { PROCEDURE (1 byte param, 4 byte param); }
- uppQDArcProcInfo = $00002B40; { PROCEDURE (1 byte param, 4 byte param, 2 byte param, 2 byte param); }
- uppQDPolyProcInfo = $00000340; { PROCEDURE (1 byte param, 4 byte param); }
- uppQDRgnProcInfo = $00000340; { PROCEDURE (1 byte param, 4 byte param); }
- uppQDBitsProcInfo = $0000EFC0; { PROCEDURE (4 byte param, 4 byte param, 4 byte param, 2 byte param, 4 byte param); }
- uppQDCommentProcInfo = $00000E80; { PROCEDURE (2 byte param, 2 byte param, 4 byte param); }
- uppQDTxMeasProcInfo = $0000FFA0; { FUNCTION (2 byte param, 4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; }
- uppQDGetPicProcInfo = $000002C0; { PROCEDURE (4 byte param, 2 byte param); }
- uppQDPutPicProcInfo = $000002C0; { PROCEDURE (4 byte param, 2 byte param); }
- uppQDOpcodeProcInfo = $00002BC0; { PROCEDURE (4 byte param, 4 byte param, 2 byte param, 2 byte param); }
- uppQDJShieldCursorProcInfo = $00002A80; { PROCEDURE (2 byte param, 2 byte param, 2 byte param, 2 byte param); }
-
- function NewQDTextProc (userRoutine: QDTextProcPtr): QDTextUPP;
- inline
- $2E9F;
-
- function NewQDLineProc (userRoutine: QDLineProcPtr): QDLineUPP;
- inline
- $2E9F;
-
- function NewQDRectProc (userRoutine: QDRectProcPtr): QDRectUPP;
- inline
- $2E9F;
-
- function NewQDRRectProc (userRoutine: QDRRectProcPtr): QDRRectUPP;
- inline
- $2E9F;
-
- function NewQDOvalProc (userRoutine: QDOvalProcPtr): QDOvalUPP;
- inline
- $2E9F;
-
- function NewQDArcProc (userRoutine: QDArcProcPtr): QDArcUPP;
- inline
- $2E9F;
-
- function NewQDPolyProc (userRoutine: QDPolyProcPtr): QDPolyUPP;
- inline
- $2E9F;
-
- function NewQDRgnProc (userRoutine: QDRgnProcPtr): QDRgnUPP;
- inline
- $2E9F;
-
- function NewQDBitsProc (userRoutine: QDBitsProcPtr): QDBitsUPP;
- inline
- $2E9F;
-
- function NewQDCommentProc (userRoutine: QDCommentProcPtr): QDCommentUPP;
- inline
- $2E9F;
-
- function NewQDTxMeasProc (userRoutine: QDTxMeasProcPtr): QDTxMeasUPP;
- inline
- $2E9F;
-
- function NewQDGetPicProc (userRoutine: QDGetPicProcPtr): QDGetPicUPP;
- inline
- $2E9F;
-
- function NewQDPutPicProc (userRoutine: QDPutPicProcPtr): QDPutPicUPP;
- inline
- $2E9F;
-
- function NewQDOpcodeProc (userRoutine: QDOpcodeProcPtr): QDOpcodeUPP;
- inline
- $2E9F;
-
- function NewQDJShieldCursorProc (userRoutine: QDJShieldCursorProcPtr): QDJShieldCursorUPP;
- inline
- $2E9F;
-
- procedure CallQDTextProc (byteCount: INTEGER;
- textBuf: Ptr;
- numer: Point;
- denom: Point;
- userRoutine: QDTextUPP);
- inline
- $205F, $4E90;
-
- procedure CallQDLineProc (newPt: Point;
- userRoutine: QDLineUPP);
- inline
- $205F, $4E90;
-
- procedure CallQDRectProc (verb: ByteParameter;
- var r: Rect;
- userRoutine: QDRectUPP);
- inline
- $205F, $4E90;
-
- procedure CallQDRRectProc (verb: ByteParameter;
- var r: Rect;
- ovalWidth: INTEGER;
- ovalHeight: INTEGER;
- userRoutine: QDRRectUPP);
- inline
- $205F, $4E90;
-
- procedure CallQDOvalProc (verb: ByteParameter;
- var r: Rect;
- userRoutine: QDOvalUPP);
- inline
- $205F, $4E90;
-
- procedure CallQDArcProc (verb: ByteParameter;
- var r: Rect;
- startAngle: INTEGER;
- arcAngle: INTEGER;
- userRoutine: QDArcUPP);
- inline
- $205F, $4E90;
-
- procedure CallQDPolyProc (verb: ByteParameter;
- poly: PolyHandle;
- userRoutine: QDPolyUPP);
- inline
- $205F, $4E90;
-
- procedure CallQDRgnProc (verb: ByteParameter;
- rgn: RgnHandle;
- userRoutine: QDRgnUPP);
- inline
- $205F, $4E90;
-
- procedure CallQDBitsProc (var srcBits: BitMap;
- var srcRect: Rect;
- var dstRect: Rect;
- mode: INTEGER;
- maskRgn: RgnHandle;
- userRoutine: QDBitsUPP);
- inline
- $205F, $4E90;
-
- procedure CallQDCommentProc (kind: INTEGER;
- dataSize: INTEGER;
- dataHandle: Handle;
- userRoutine: QDCommentUPP);
- inline
- $205F, $4E90;
-
- function CallQDTxMeasProc (byteCount: INTEGER;
- textAddr: Ptr;
- var numer: Point;
- var denom: Point;
- var info: FontInfo;
- userRoutine: QDTxMeasUPP): INTEGER;
- inline
- $205F, $4E90;
-
- procedure CallQDGetPicProc (dataPtr: Ptr;
- byteCount: INTEGER;
- userRoutine: QDGetPicUPP);
- inline
- $205F, $4E90;
-
- procedure CallQDPutPicProc (dataPtr: Ptr;
- byteCount: INTEGER;
- userRoutine: QDPutPicUPP);
- inline
- $205F, $4E90;
-
- procedure CallQDOpcodeProc (var fromRect: Rect;
- var toRect: Rect;
- opcode: INTEGER;
- version: INTEGER;
- userRoutine: QDOpcodeUPP);
- inline
- $205F, $4E90;
-
- procedure CallQDJShieldCursorProc (left: INTEGER;
- top: INTEGER;
- right: INTEGER;
- bottom: INTEGER;
- userRoutine: QDJShieldCursorUPP);
- inline
- $205F, $4E90;
-
- type
-
- RGBColorPtr = ^RGBColor;
- RGBColorHdl = ^RGBColorPtr;
-
- DragGrayRgnProcPtr = ProcPtr; { PROCEDURE DragGrayRgn; }
- ColorSearchProcPtr = ProcPtr; { FUNCTION ColorSearch(VAR rgb: RGBColor; VAR position: LONGINT): BOOLEAN; }
- ColorComplementProcPtr = ProcPtr; { FUNCTION ColorComplement(VAR rgb: RGBColor): BOOLEAN; }
- DragGrayRgnUPP = UniversalProcPtr;
- ColorSearchUPP = UniversalProcPtr;
- ColorComplementUPP = UniversalProcPtr;
-
- const
- uppDragGrayRgnProcInfo = $00000000; { PROCEDURE ; }
- uppColorSearchProcInfo = $000003D0; { FUNCTION (4 byte param, 4 byte param): 1 byte result; }
- uppColorComplementProcInfo = $000000D0; { FUNCTION (4 byte param): 1 byte result; }
-
- function NewDragGrayRgnProc (userRoutine: DragGrayRgnProcPtr): DragGrayRgnUPP;
- inline
- $2E9F;
-
- function NewColorSearchProc (userRoutine: ColorSearchProcPtr): ColorSearchUPP;
- inline
- $2E9F;
-
- function NewColorComplementProc (userRoutine: ColorComplementProcPtr): ColorComplementUPP;
- inline
- $2E9F;
-
- procedure CallDragGrayRgnProc (userRoutine: DragGrayRgnUPP);
- inline
- $205F, $4E90;
-
- function CallColorSearchProc (var rgb: RGBColor;
- var position: LONGINT;
- userRoutine: ColorSearchUPP): BOOLEAN;
- inline
- $205F, $4E90;
-
- function CallColorComplementProc (var rgb: RGBColor;
- userRoutine: ColorComplementUPP): BOOLEAN;
- inline
- $205F, $4E90;
-
- type
- DeviceLoopDrawingProcPtr = ProcPtr; { PROCEDURE DeviceLoopDrawing(depth: INTEGER; deviceFlags: INTEGER; targetDevice: GDHandle; userData: LONGINT); }
- DeviceLoopDrawingUPP = UniversalProcPtr;
-
- const
- uppDeviceLoopDrawingProcInfo = $00003E80; { PROCEDURE (2 byte param, 2 byte param, 4 byte param, 4 byte param); }
-
- function NewDeviceLoopDrawingProc (userRoutine: DeviceLoopDrawingProcPtr): DeviceLoopDrawingUPP;
- inline
- $2E9F;
-
- procedure CallDeviceLoopDrawingProc (depth: INTEGER;
- deviceFlags: INTEGER;
- targetDevice: GDHandle;
- userData: LONGINT;
- userRoutine: DeviceLoopDrawingUPP);
- inline
- $205F, $4E90;
-
- type
- QDGlobals = record
- privates: packed array[0..75] of CHAR;
- randSeed: LONGINT;
- screenBits: BitMap;
- arrow: Cursor;
- dkGray: Pattern;
- ltGray: Pattern;
- gray: Pattern;
- black: Pattern;
- white: Pattern;
- thePort: GrafPtr;
- end; { QDGlobals }
-
- { To be in sync with the C interface to QuickDraw globals, pascal code must now }
- { qualify the QuickDraw globals with “qd.” (e.g. InitGraf(@qd.thePort); ) }
-
- { Yeah, right. }
- { Unfortunately, the THINK Pascal Interface.Lib file does not define "qd" for us. :-( }
-
- implementation
- end.